package nio;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.nio.channels.FileChannel;

/**
 * 应用实例4-拷贝文件transferFrom 方法
 *
 * @author chenyuan
 * @date 2020/11/1 16:08
 */
public class FileChannel04 {
	public static void main(String[] args) throws Exception {
		// 创建输入流对象，并获取对应的 Channel
		FileInputStream inputStream = new FileInputStream("D:\\Demo.png");
		FileChannel inputStreamChannel = inputStream.getChannel();

		// 创建输出流对象，并获取对应的 Channel
		FileOutputStream outputStream = new FileOutputStream("D:\\Demo-2.png");
		FileChannel outputStreamChannel = outputStream.getChannel();

		// 使用 transferForm 完成拷贝
		// 参数 ： 被复制的流的Channel ； 起始位置 ； 结束位置
		outputStreamChannel.transferFrom(inputStreamChannel, 0, inputStreamChannel.size());

		// 关闭输入、输出流
		inputStream.close();
		outputStream.close();
	}
}
